Skip to content

[Highly Customized] New AdvancedDrive locomotor #1622

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 40 commits into
base: develop
Choose a base branch
from

Conversation

CrimRecya
Copy link
Contributor

@CrimRecya CrimRecya commented Apr 10, 2025

  • AdvancedDrive locomotor ({4A582751-9839-11d1-B709-00A024DDAFD1}) is an improved Drive locomotor ({4A582741-9839-11d1-B709-00A024DDAFD1}) that can serve as a complete upper level replacement for it.
  • It fixes the issue where Drive cannot correctly crush objects during rapid turns.
  • It has smoother uphill and downhill dynamic visual effects.
  • It has the function of driving the unit backwards.
    • AdvancedDrive.Reverse controls whether the unit can driving backwards. The next 5 items are all under its control.
    • AdvancedDrive.Reverse.FaceTarget controls whether to maitain the frontal movement towards the enemy within AdvancedDrive.Reverse.FaceTargetRange and no longer automatically selects by the current orientation.
    • AdvancedDrive.Reverse.MinimumDistance controls how close the unit is to its destination, allowing reversing.
    • AdvancedDrive.Reverse.RetreatDuration controls how long since the unit was last injured, allowing reversing.
    • AdvancedDrive.Reverse.Speed controls the speed ratio when reversing.
  • It also has the function of hovering.
    • AdvancedDrive.Hover controls whether the unit can hovering above the ground. The next 6 items are all under its control.
    • AdvancedDrive.Hover.Sink controls whether the unit will be destroyed when losing power on the water.
    • AdvancedDrive.Hover.Spin controls whether the unit will rotating when losing power.
    • AdvancedDrive.Hover.Tilt controls whether the unit will will tilt at an angle on the slope.
    • AdvancedDrive.Hover.Height, AdvancedDrive.Hover.Dampen and AdvancedDrive.Hover.Bob control the state of hovering like what vanilla HoverHeight, HoverDampen and HoverBob do.

In rulesmd.ini:

[SOMEVEHICLE]                               ; VehicleType
Locomotor=AdvancedDrive                     ; Locomotor
AdvancedDrive.Reverse=true                  ; boolean
AdvancedDrive.Reverse.FaceTarget=true       ; boolean
AdvancedDrive.Reverse.FaceTargetRange=16.0  ; floating point value
AdvancedDrive.Reverse.MinimumDistance=2.5   ; floating point value
AdvancedDrive.Reverse.RetreatDuration=150   ; integer, game frames
AdvancedDrive.Reverse.Speed=0.85            ; floating point value
AdvancedDrive.Hover=false                   ; boolean
AdvancedDrive.Hover.Sink=true               ; boolean
AdvancedDrive.Hover.Spin=true               ; boolean
AdvancedDrive.Hover.Tilt=true               ; boolean
AdvancedDrive.Hover.Height=                 ; floating point value, default to [General] -> HoverHeight
AdvancedDrive.Hover.Dampen=                 ; floating point value, default to [General] -> HoverDampen
AdvancedDrive.Hover.Bob=                    ; floating point value, default to [General] -> HoverBob

Copy link

github-actions bot commented Apr 10, 2025

Nightly build for this pull request:

This comment is automatic and is meant to allow guests to get latest nightly builds for this pull request without registering. It is updated on every successful build.

@Coronia Coronia added Needs testing ⚙️T2 T2 maintainer review is sufficient labels Apr 10, 2025
@CrimRecya
Copy link
Contributor Author

CrimRecya commented Apr 11, 2025

The reverse function, when used in conjunction with #1623 and #1480, can provide a more complete gaming function. While when used in conjunction with KeepTargetOnMove and KeepRange, it can enhance the player's gaming experience.
reverse

@Starkku
Copy link
Contributor

Starkku commented Apr 11, 2025

Irregardless of any other factors (I have not had time to do in-depth review yet), the name probably needs to be something less ambiguous than Skilled.

@CrimRecya
Copy link
Contributor Author

Irregardless of any other factors (I have not had time to do in-depth review yet), the name probably needs to be something less ambiguous than Skilled.

Well, it's indeed not quite clear. Do you have any suggestions?

@Metadorius
Copy link
Member

AdvancedDrive?

Copy link
Member

@Metadorius Metadorius left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Marked all the places I found where something could be named or brought to YRpp for your convenience.

{
const auto pLinked = this->LinkedTo;

if (!pLinked->unknown_abstract_array_588.Count)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and here

if (pLinked->OnBridge != pNextCell->ContainsBridge())
pLinked->unknown_bool_68B = true;

if (!pLinked->vt_entry_29C())
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and here

@CrimRecya
Copy link
Contributor Author

AdvancedDrive?

At first, I thought of SkilledDrive, but I felt it was too long, so I changed it to the current one. But obviously, this is confusing.

@CrimRecya CrimRecya changed the title [Highly Customized] New Skilled locomotor [Highly Customized] New AdvancedDrive locomotor Apr 16, 2025
@Starkku Starkku force-pushed the develop branch 2 times, most recently from b429215 to 280b1c8 Compare June 29, 2025 19:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Needs testing ❓New feature ⚙️T2 T2 maintainer review is sufficient
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants